A barcode is an optical machine-readable representation of data. Originally, barcodes represented data by varying the widths and spacings of parallel lines. These types of barcodes may be referred to as linear or one-dimensional (1D) barcodes. Later, barcodes evolved into rectangles, dots, hexagons and other geometric patterns in two dimensions (2D). Although 2D systems use a variety of symbols, they are generally referred to as barcodes as well. Devices for identifying or extracting information from barcodes are generally referred to as barcode readers. Barcodes and barcode readers have become widely used in many commercial environments, such as point-of-sale stations in retail stores and supermarkets, inventory and document tracking, and the like.